Songs
Song
객체는 Apple Music API에서 곡에 대한 정보를 제공합니다. 다음은 Song 객체의 속성과 그 설명입니다.
WePLi 개발에 필요한 속성만 추출한 문서입니다. 자세한 내용은 Apple Music 공식 문서를 참고해주세요.
전체 코드
data class Song(
val id: String,
val type: String,
val href: String,
val attributes: Attributes,
) {
data class Attributes(
val name: String,
val albumName: String,
val artistName: String,
val hasLyrics: Boolean,
val durationInMillis: Int,
val genreNames: List<String>,
val url: String,
val playParams: PlayParams,
val previews: List<Preview>,
val releaseDate: String,
val trackNumber: Int,
val artwork: Artwork,
/* 필요 없을 것 같은 값들 */
val composerName: String,
val discNumber: Int,
val isAppleDigitalMaster: Boolean,
val isrc: String,
) {
data class Preview(
val url: String
)
data class PlayParams(
val id: String,
val kind: String
)
}
}
Song
data class Song(
val id: String,
val type: String,
val href: String,
val attributes: Attributes,
)
속성
id
(Required): 곡의 고유 식별자type
(Required): 데이터 유형 (songs
)href
(Required): 리소스의 URLattributes
: 곡에 대한 세부 정보, 아래 Attributes 참조
Attributes
Attributes
객체는 곡의 메타데이터를 포함합니다.
data class Attributes(
val name: String, // 노래 제목
val albumName: String, // 앨범 이름
val artistName: String, // 가수 이름
val hasLyrics: Boolean, // 가사 여부
val durationInMillis: Int, // 노래 재생 시간
val genreNames: List<String>, // 장르
val url: String, // 노래 페이지 URL
val playParams: PlayParams, // 플레이 파라미터 (노래 재생에 사용, 미리듣기 - 사용 가능, 풀버전 - 애플 뮤직 구독 필요)
val previews: List<Preview>, // 미리듣기 m4a 파일 url
val releaseDate: String, // 출시일
val trackNumber: Int, // 앨범 내에서의 트랙 순서
val artwork: Artwork, // 노래 이미지 정보
/* 필요 없을 것 같은 값들 */
val composerName: String, // 작곡가 이름
val discNumber: Int, // 디스크 번호
val isAppleDigitalMaster: Boolean, // Apple Digital Master 여부
val isrc: String, // 국제 표준 레코딩 코드 (ISRC)
)
속성
-
albumName
: string (Required)
곡이 수록된 앨범의 이름입니다. -
artistName
: string (Required)
아티스트의 이름입니다. -
artistUrl
: string
콘텐츠의 아티스 트 URL입니다. -
artwork
: Artwork (Required)
앨범의 아트워크입니다. -
attribution
: string
(클래식 음악 전용) 곡에 대한 아티스트 또는 작곡가의 이름입니다. -
audioVariants
: [string]
곡의 특정 오디오 변형을 나타냅니다.가능한 값:
dolby-atmos
,dolby-audio
,hi-res-lossless
,lossless
,lossy-stereo
. -
composerName
: string
곡의 작곡가 이름입니다. -
contentRating
: string
콘텐츠의 녹음물 등급입니다. 값이 없으면 등급이 없음을 의미합니다.가능한 값:
clean
,explicit
. -
discNumber
: integer
곡이 수록된 앨범의 디스크 번호입니다. -
durationInMillis
: integer (Required)
곡의 길이(밀리초)입니다. -
editorialNotes
: EditorialNotes
Apple Music 카탈로그에 표시되는 곡에 대한 노트입니다. -
genreNames
: [string] (Required)
곡과 연관된 장르 이름 목록입니다. -
hasLyrics
: boolean (Required)
Apple Music 카탈로그에서 곡에 가사가 있는지 여부를 나타냅니다.true
는 가사가 있음을,false
는 가사가 없음을 의미합니다. -
isAppleDigitalMaster
: boolean (Required)
응답이 Apple Digital Master로 곡을 제공하는지 여부를 나타냅니다. -
isrc
: string
곡의 국제 표준 녹음 코드(ISRC)입니다. -
movementCount
: integer
(클래식 음악 전용) 곡의 악장 수입니다. -
movementName
: string
(클래식 음악 전용) 곡의 악장 이름입니다. -
movementNumber
: integer
(클래식 음악 전용) 곡의 악장 번호입니다. -
name
: string (Required)
곡의 현지화된 이름입니다. -
playParams
: PlayParameters
Apple Music 구독으로 곡을 재생할 수 있는지 여부를 나타냅니다. -
previews
: [Preview] (Required)
곡의 미리 듣기 자산입니다. -
releaseDate
: string
곡의 출시일(알려져 있는 경우)입니다. 형식은YYYY-MM-DD
또는YYYY
입니다. -
trackNumber
: integer
앨범 트랙 목록에서 곡의 번호입니다. -
url
: string (Required)
Apple Music에서 곡을 공유할 수 있는 URL입니다. -
workName
: string
(클래식 음악 전용) 연관된 작품의 이름입니다.
Artwork
Artwork
객체는 커버 이미지의 정보를 포함합니다. (앨범 커버, 가수 이미지 등)
data class Artwork(
val bgColor: String, // 이미지의 평균 배경색 (주요 색상)
val width: Int, // 이미지 너비
val height: Int, // 이미지 높이
val textColor1: String, // 배경색이 표시되는 경우 사용되는 기본 텍스트 색상
val textColor2: String, // 배경색이 표시되는 경우 사용되는 보조 텍스트 색상
val textColor3: String, // 배경색이 표시되는 경우 사용되는 세 번째 텍스트 색상
val textColor4: String, // 배경색이 표시되는 경우 최종 텍스트
val url: String, // 이미지 url ({w}x{h} 부분에 width, height 대입)
)
속성
width
: 이미지의 너비 (픽셀)height
: 이미지의 높이 (픽셀)url
: 앨범 커버 이미지 URLbgColor
: 이미지의 배경색 (HEX 코드)textColor1
: 주요 텍스트 색상 (HEX 코드)textColor2
: 보조 텍스트 색상 (HEX 코드)
PlayParams
PlayParams
객체는 곡 재생을 위한 파라미터를 포함합니다.
Apple Music과 매핑되는 값입니다.
data class PlayParams(
val id: String,
val kind: String
)
속성
id
: 곡의 재생 IDkind
: 리소스 유형 (song
)
Previews
Previews
객체는 미리듣기 m4a 파일의 url을 포함합니다
data class Preview(
val url: String // https://example.com/preview.m4a
)
속성
url
: 미리 듣기 URL